/*
 * Copyright 2025 The Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 *@file    : type.h
 *@brief   : type header 
 *@authors : zhanglei, zhanglei_723@126.com
 *@version : v1.0
 *@data    : 2025/8/31
 *
 */
#ifndef TYPE_H
#define TYPE_H

#include <cmath>
#include <Eigen/Dense>
#include <Eigen/Core>
#include <unordered_map>
#include <map>
#include <vector>
#include <algorithm>
#include <deque>
#include <memory>

#include <iomanip>

#include <cstdlib>
#include <pthread.h>

#include <opencv2/opencv.hpp>

#include <glog/logging.h>

using namespace std;

using uint64_t = std::uint64_t;
using uint32_t = std::uint32_t;
using uint16_t = std::uint16_t;
using uint8_t = std::uint8_t;

using int64_t = std::int64_t;
using int32_t = std::int32_t;

using float32_t = float;
using float64_t = double;

using Vector2d = Eigen::Vector2d;
using Vector3d = Eigen::Vector3d;
using Vector4d = Eigen::Vector4d; 

using Vector128d = Eigen::Matrix<double, 128, 1>;
using Vector256d = Eigen::Matrix<double, 256, 1>;

using Matrix3d = Eigen::Matrix3d;
using Matrix4d = Eigen::Matrix4d;
using MatrixXd = Eigen::MatrixXd;
#endif
